/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package restaurante.cdp;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import restaurante.cdp.enuns.SituacaoMotoboy;
import restaurante.cdp.enuns.SituacaoPedido;
import restaurante.cdp.interfaces.EntregadorPedido;
import restaurante.cdp.interfaces.Observador;
import restaurante.cdp.interfaces.ResponsavelPagamento;

/**
 *
 * @author a20101bsi0623
 */
@Entity
public class Motoboy extends Funcionario implements EntregadorPedido, ResponsavelPagamento, Observador{
    private Integer numEntrega;
    private SituacaoMotoboy situacao;

    public Motoboy() {
        numEntrega = 0;
        situacao = SituacaoMotoboy.DISPONIVEL;
    }
    
    

    public Integer getNumEntrega() {
        return numEntrega;
    }

    public void setNumEntrega(Integer numEntrega) {
        this.numEntrega = numEntrega;
    }

    @Enumerated(EnumType.STRING)
    public SituacaoMotoboy getSituacao() {
        return situacao;
    }

    public void setSituacao(SituacaoMotoboy situacao) {
        this.situacao = situacao;
    }
    
    

    
    
    @Override
    public void entregar(Pedido pedido) {
        if(this.situacao.equals(SituacaoMotoboy.DISPONIVEL))
        {
            pedido.setSituacao(SituacaoPedido.ENTREGUE);
            pedido.getCliente().setSituacao(pedido);
            this.setSituacao(SituacaoMotoboy.ENTREGANDO);
            numEntrega++;
            this.setSituacao(SituacaoMotoboy.DISPONIVEL);
            //System.out.print("\nMotoboy: Pedido "+ pedido.getNumeroLista()+" entregue para o Cliente: ");
            pedido.getCliente().consultaCliente();
            System.out.println("\n");
        }
        else System.out.println("\nMotoboy ocupado!"); 
    }

    @Override
    public void receberPagamento() {
        System.out.println("\nMotoboy: Pagamento Recebido");
    }

    @Override
    public void computarPagamento()
    {
        System.out.println("\nMotoboy: Pagamento Computado");
    }

    @Override
    public void atualizar() {
        System.out.println("Atualizar");
    }
    
    @Override
    public void consultaFuncionario() {
        System.out.println("\n--Funcionario--");
        System.out.println(">Nome: "+this.getNome());
        System.out.println(">Tipo: Motoboy");
        System.out.println(">Situacao: "+this.getSituacao());
        System.out.println(">Numero de pedidos entregues: "+this.getNumEntrega());
    }
    
    @Override
    public void consulta() {
        this.consultaFuncionario();
    }
    
    @Override
    public void consultaResponsavel() {
        consultaFuncionario();
    }
    
    
}
